<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::DinastGrabber类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_dinast_grabber.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-types">Protected 类型</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="#pri-types">Private 类型</a> &#124;
<a href="classpcl_1_1_dinast_grabber-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::DinastGrabber类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="classpcl_1_1_grabber.html" title="Grabber interface for PCL 1.x device drivers">Grabber</a> for DINAST devices (i.e., IPA-1002, IPA-1110, IPA-2001)  
 <a href="classpcl_1_1_dinast_grabber.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="dinast__grabber_8h_source.html">dinast_grabber.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::DinastGrabber 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1_dinast_grabber.png" usemap="#pcl::DinastGrabber_map" alt=""/>
  <map id="pcl::DinastGrabber_map" name="pcl::DinastGrabber_map">
<area href="classpcl_1_1_grabber.html" title="Grabber interface for PCL 1.x device drivers" alt="pcl::Grabber" shape="rect" coords="0,0,117,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a0f1ea76f5beefbc32ce4f2dc050e7e43"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a0f1ea76f5beefbc32ce4f2dc050e7e43">DinastGrabber</a> (const int device_position=1)</td></tr>
<tr class="memdesc:a0f1ea76f5beefbc32ce4f2dc050e7e43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that sets up the grabber constants.  <a href="classpcl_1_1_dinast_grabber.html#a0f1ea76f5beefbc32ce4f2dc050e7e43">更多...</a><br /></td></tr>
<tr class="separator:a0f1ea76f5beefbc32ce4f2dc050e7e43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad544683be834a3e3d0f61e389afc2543"><td class="memItemLeft" align="right" valign="top"><a id="ad544683be834a3e3d0f61e389afc2543"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#ad544683be834a3e3d0f61e389afc2543">~DinastGrabber</a> ()  throw ()</td></tr>
<tr class="memdesc:ad544683be834a3e3d0f61e389afc2543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. It never throws. <br /></td></tr>
<tr class="separator:ad544683be834a3e3d0f61e389afc2543"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24d3d6fd8a3f3d92fce222578b4d1da9"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a24d3d6fd8a3f3d92fce222578b4d1da9">isRunning</a> () const</td></tr>
<tr class="memdesc:a24d3d6fd8a3f3d92fce222578b4d1da9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the grabber is running  <a href="classpcl_1_1_dinast_grabber.html#a24d3d6fd8a3f3d92fce222578b4d1da9">更多...</a><br /></td></tr>
<tr class="separator:a24d3d6fd8a3f3d92fce222578b4d1da9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bea6bf1386f91023717e6b781483148"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a2bea6bf1386f91023717e6b781483148">getName</a> () const</td></tr>
<tr class="memdesc:a2bea6bf1386f91023717e6b781483148"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the concrete subclass, <a class="el" href="classpcl_1_1_dinast_grabber.html" title="Grabber for DINAST devices (i.e., IPA-1002, IPA-1110, IPA-2001)">DinastGrabber</a>.  <a href="classpcl_1_1_dinast_grabber.html#a2bea6bf1386f91023717e6b781483148">更多...</a><br /></td></tr>
<tr class="separator:a2bea6bf1386f91023717e6b781483148"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fa41a088e1ac5154f335ba340f2956e"><td class="memItemLeft" align="right" valign="top"><a id="a2fa41a088e1ac5154f335ba340f2956e"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a2fa41a088e1ac5154f335ba340f2956e">start</a> ()</td></tr>
<tr class="memdesc:a2fa41a088e1ac5154f335ba340f2956e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the data acquisition process. <br /></td></tr>
<tr class="separator:a2fa41a088e1ac5154f335ba340f2956e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bce83d72bf4fc2015a1f75272d0dba7"><td class="memItemLeft" align="right" valign="top"><a id="a9bce83d72bf4fc2015a1f75272d0dba7"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a9bce83d72bf4fc2015a1f75272d0dba7">stop</a> ()</td></tr>
<tr class="memdesc:a9bce83d72bf4fc2015a1f75272d0dba7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop the data acquisition process. <br /></td></tr>
<tr class="separator:a9bce83d72bf4fc2015a1f75272d0dba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bb84bf353580f95dcefd6bf2539aa11"><td class="memItemLeft" align="right" valign="top"><a id="a9bb84bf353580f95dcefd6bf2539aa11"></a>
virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a9bb84bf353580f95dcefd6bf2539aa11">getFramesPerSecond</a> () const</td></tr>
<tr class="memdesc:a9bb84bf353580f95dcefd6bf2539aa11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain the number of frames per second (FPS). <br /></td></tr>
<tr class="separator:a9bb84bf353580f95dcefd6bf2539aa11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6bfc870a0ec85be4bdbf3ff1e5aae33"><td class="memItemLeft" align="right" valign="top"><a id="ab6bfc870a0ec85be4bdbf3ff1e5aae33"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#ab6bfc870a0ec85be4bdbf3ff1e5aae33">getDeviceVersion</a> ()</td></tr>
<tr class="memdesc:ab6bfc870a0ec85be4bdbf3ff1e5aae33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the version number of the currently opened device <br /></td></tr>
<tr class="separator:ab6bfc870a0ec85be4bdbf3ff1e5aae33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_grabber"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_grabber')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_grabber.html">pcl::Grabber</a></td></tr>
<tr class="memitem:ad1bd77c0344f3cf3283757daddb4fe9d inherit pub_methods_classpcl_1_1_grabber"><td class="memItemLeft" align="right" valign="top"><a id="ad1bd77c0344f3cf3283757daddb4fe9d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_grabber.html#ad1bd77c0344f3cf3283757daddb4fe9d">Grabber</a> ()</td></tr>
<tr class="memdesc:ad1bd77c0344f3cf3283757daddb4fe9d inherit pub_methods_classpcl_1_1_grabber"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:ad1bd77c0344f3cf3283757daddb4fe9d inherit pub_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c8545d6fe2aadc0fe8ba9643f80c1fc inherit pub_methods_classpcl_1_1_grabber"><td class="memItemLeft" align="right" valign="top"><a id="a1c8545d6fe2aadc0fe8ba9643f80c1fc"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_grabber.html#a1c8545d6fe2aadc0fe8ba9643f80c1fc">~Grabber</a> ()  throw ()</td></tr>
<tr class="memdesc:a1c8545d6fe2aadc0fe8ba9643f80c1fc inherit pub_methods_classpcl_1_1_grabber"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual desctructor. <br /></td></tr>
<tr class="separator:a1c8545d6fe2aadc0fe8ba9643f80c1fc inherit pub_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35dc83ee946b0bd5d0a7cbad4df7427b inherit pub_methods_classpcl_1_1_grabber"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a35dc83ee946b0bd5d0a7cbad4df7427b inherit pub_methods_classpcl_1_1_grabber"><td class="memTemplItemLeft" align="right" valign="top">boost::signals2::connection&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_grabber.html#a35dc83ee946b0bd5d0a7cbad4df7427b">registerCallback</a> (const boost::function&lt; T &gt; &amp;callback)</td></tr>
<tr class="memdesc:a35dc83ee946b0bd5d0a7cbad4df7427b inherit pub_methods_classpcl_1_1_grabber"><td class="mdescLeft">&#160;</td><td class="mdescRight">registers a callback function/method to a signal with the corresponding signature  <a href="classpcl_1_1_grabber.html#a35dc83ee946b0bd5d0a7cbad4df7427b">更多...</a><br /></td></tr>
<tr class="separator:a35dc83ee946b0bd5d0a7cbad4df7427b inherit pub_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed2b00928603dfd9e51cfb22adbedae6 inherit pub_methods_classpcl_1_1_grabber"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aed2b00928603dfd9e51cfb22adbedae6 inherit pub_methods_classpcl_1_1_grabber"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_grabber.html#aed2b00928603dfd9e51cfb22adbedae6">providesCallback</a> () const</td></tr>
<tr class="memdesc:aed2b00928603dfd9e51cfb22adbedae6 inherit pub_methods_classpcl_1_1_grabber"><td class="mdescLeft">&#160;</td><td class="mdescRight">indicates whether a signal with given parameter-type exists or not  <a href="classpcl_1_1_grabber.html#aed2b00928603dfd9e51cfb22adbedae6">更多...</a><br /></td></tr>
<tr class="separator:aed2b00928603dfd9e51cfb22adbedae6 inherit pub_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected 类型</h2></td></tr>
<tr class="memitem:aa35cea81022e7749e6a1a6f840610320"><td class="memItemLeft" align="right" valign="top"><a id="aa35cea81022e7749e6a1a6f840610320"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#aa35cea81022e7749e6a1a6f840610320">pixel_size</a> { <b>RAW8</b> =1
, <b>RGB16</b> =2
, <b>RGB24</b> =3
, <b>RGB32</b> =4
 }</td></tr>
<tr class="memdesc:aa35cea81022e7749e6a1a6f840610320"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of pixel <br /></td></tr>
<tr class="separator:aa35cea81022e7749e6a1a6f840610320"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa980e3038a7cb2e2821bc395662a7141"><td class="memItemLeft" align="right" valign="top"><a id="aa980e3038a7cb2e2821bc395662a7141"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>CMD_READ_START</b> =0xC7
, <b>CMD_READ_STOP</b> =0xC8
, <b>CMD_GET_VERSION</b> =0xDC
, <b>CMD_SEND_DATA</b> =0xDE
 }</td></tr>
<tr class="memdesc:aa980e3038a7cb2e2821bc395662a7141"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device command values <br /></td></tr>
<tr class="separator:aa980e3038a7cb2e2821bc395662a7141"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:aec6018ba8d3508ef9d2fdada8ee745be"><td class="memItemLeft" align="right" valign="top"><a id="aec6018ba8d3508ef9d2fdada8ee745be"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#aec6018ba8d3508ef9d2fdada8ee745be">onInit</a> (const int device_id)</td></tr>
<tr class="memdesc:aec6018ba8d3508ef9d2fdada8ee745be"><td class="mdescLeft">&#160;</td><td class="mdescRight">On initialization processing. <br /></td></tr>
<tr class="separator:aec6018ba8d3508ef9d2fdada8ee745be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa667c611eab72937cecc40c826060587"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#aa667c611eab72937cecc40c826060587">setupDevice</a> (int device_position, const int id_vendor=0x18d1, const int id_product=0x1402)</td></tr>
<tr class="memdesc:aa667c611eab72937cecc40c826060587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup a Dinast 3D camera device  <a href="classpcl_1_1_dinast_grabber.html#aa667c611eab72937cecc40c826060587">更多...</a><br /></td></tr>
<tr class="separator:aa667c611eab72937cecc40c826060587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb4273312fd2a265269fce6515b08bd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a3cb4273312fd2a265269fce6515b08bd">USBRxControlData</a> (const unsigned char req_code, unsigned char *buffer, int length)</td></tr>
<tr class="memdesc:a3cb4273312fd2a265269fce6515b08bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a RX data packet request  <a href="classpcl_1_1_dinast_grabber.html#a3cb4273312fd2a265269fce6515b08bd">更多...</a><br /></td></tr>
<tr class="separator:a3cb4273312fd2a265269fce6515b08bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc5af0ad29551a4c541a79c82d609080"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#acc5af0ad29551a4c541a79c82d609080">USBTxControlData</a> (const unsigned char req_code, unsigned char *buffer, int length)</td></tr>
<tr class="memdesc:acc5af0ad29551a4c541a79c82d609080"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a TX data packet request  <a href="classpcl_1_1_dinast_grabber.html#acc5af0ad29551a4c541a79c82d609080">更多...</a><br /></td></tr>
<tr class="separator:acc5af0ad29551a4c541a79c82d609080"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50dae74f09a229057e02d6af552fbe02"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a50dae74f09a229057e02d6af552fbe02">checkHeader</a> ()</td></tr>
<tr class="memdesc:a50dae74f09a229057e02d6af552fbe02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if we have a header in the global buffer, and return the position of the next valid image.  <a href="classpcl_1_1_dinast_grabber.html#a50dae74f09a229057e02d6af552fbe02">更多...</a><br /></td></tr>
<tr class="separator:a50dae74f09a229057e02d6af552fbe02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e79adb26a2d56c4cc20f66c02463cc9"><td class="memItemLeft" align="right" valign="top"><a id="a7e79adb26a2d56c4cc20f66c02463cc9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a7e79adb26a2d56c4cc20f66c02463cc9">readImage</a> ()</td></tr>
<tr class="memdesc:a7e79adb26a2d56c4cc20f66c02463cc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read image data and leaves it on image_ <br /></td></tr>
<tr class="separator:a7e79adb26a2d56c4cc20f66c02463cc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28a7daa98254a86996bef98d19291650"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_i.html">pcl::PointXYZI</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a28a7daa98254a86996bef98d19291650">getXYZIPointCloud</a> ()</td></tr>
<tr class="memdesc:a28a7daa98254a86996bef98d19291650"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtains XYZI Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> from the image of the camera  <a href="classpcl_1_1_dinast_grabber.html#a28a7daa98254a86996bef98d19291650">更多...</a><br /></td></tr>
<tr class="separator:a28a7daa98254a86996bef98d19291650"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2822119cebf9e6b70d83eba22e420df2"><td class="memItemLeft" align="right" valign="top"><a id="a2822119cebf9e6b70d83eba22e420df2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a2822119cebf9e6b70d83eba22e420df2">captureThreadFunction</a> ()</td></tr>
<tr class="memdesc:a2822119cebf9e6b70d83eba22e420df2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function in charge of getting the data from the camera <br /></td></tr>
<tr class="separator:a2822119cebf9e6b70d83eba22e420df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1_grabber"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1_grabber')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1_grabber.html">pcl::Grabber</a></td></tr>
<tr class="memitem:a1eaf930e8f5bc9befdf9e7e3dd85cab3 inherit pro_methods_classpcl_1_1_grabber"><td class="memItemLeft" align="right" valign="top"><a id="a1eaf930e8f5bc9befdf9e7e3dd85cab3"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>signalsChanged</b> ()</td></tr>
<tr class="separator:a1eaf930e8f5bc9befdf9e7e3dd85cab3 inherit pro_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29a1f6e6e197519b08536b6095d28ccc inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplParams" colspan="2"><a id="a29a1f6e6e197519b08536b6095d28ccc"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a29a1f6e6e197519b08536b6095d28ccc inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplItemLeft" align="right" valign="top">boost::signals2::signal&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>find_signal</b> () const</td></tr>
<tr class="separator:a29a1f6e6e197519b08536b6095d28ccc inherit pro_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae87e7482328a297a95396467e0e28856 inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplParams" colspan="2"><a id="ae87e7482328a297a95396467e0e28856"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:ae87e7482328a297a95396467e0e28856 inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><b>num_slots</b> () const</td></tr>
<tr class="separator:ae87e7482328a297a95396467e0e28856 inherit pro_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9ade6bd29a46f6acb411a7968f99ae8 inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplParams" colspan="2"><a id="aa9ade6bd29a46f6acb411a7968f99ae8"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa9ade6bd29a46f6acb411a7968f99ae8 inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>disconnect_all_slots</b> ()</td></tr>
<tr class="separator:aa9ade6bd29a46f6acb411a7968f99ae8 inherit pro_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceece1bd68187c109b289567c33536b9 inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplParams" colspan="2"><a id="aceece1bd68187c109b289567c33536b9"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:aceece1bd68187c109b289567c33536b9 inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>block_signal</b> ()</td></tr>
<tr class="separator:aceece1bd68187c109b289567c33536b9 inherit pro_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25c1f3c966c486be2b01fe11d2d0df5a inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplParams" colspan="2"><a id="a25c1f3c966c486be2b01fe11d2d0df5a"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a25c1f3c966c486be2b01fe11d2d0df5a inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>unblock_signal</b> ()</td></tr>
<tr class="separator:a25c1f3c966c486be2b01fe11d2d0df5a inherit pro_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a023e6b7d7c8ebc27d59e7076162c4c73 inherit pro_methods_classpcl_1_1_grabber"><td class="memItemLeft" align="right" valign="top"><a id="a023e6b7d7c8ebc27d59e7076162c4c73"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>block_signals</b> ()</td></tr>
<tr class="separator:a023e6b7d7c8ebc27d59e7076162c4c73 inherit pro_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57fa6746fd5521b7cfe27b7847778969 inherit pro_methods_classpcl_1_1_grabber"><td class="memItemLeft" align="right" valign="top"><a id="a57fa6746fd5521b7cfe27b7847778969"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>unblock_signals</b> ()</td></tr>
<tr class="separator:a57fa6746fd5521b7cfe27b7847778969 inherit pro_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e1ee7a265cee458f59414de47a34ed2 inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplParams" colspan="2"><a id="a3e1ee7a265cee458f59414de47a34ed2"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a3e1ee7a265cee458f59414de47a34ed2 inherit pro_methods_classpcl_1_1_grabber"><td class="memTemplItemLeft" align="right" valign="top">boost::signals2::signal&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>createSignal</b> ()</td></tr>
<tr class="separator:a3e1ee7a265cee458f59414de47a34ed2 inherit pro_methods_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:a8edd638582619b2de7601c07dc16341f"><td class="memItemLeft" align="right" valign="top"><a id="a8edd638582619b2de7601c07dc16341f"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a8edd638582619b2de7601c07dc16341f">image_width_</a></td></tr>
<tr class="memdesc:a8edd638582619b2de7601c07dc16341f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Width of image <br /></td></tr>
<tr class="separator:a8edd638582619b2de7601c07dc16341f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2248e2c024ed3854be881405b2f6d51f"><td class="memItemLeft" align="right" valign="top"><a id="a2248e2c024ed3854be881405b2f6d51f"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a2248e2c024ed3854be881405b2f6d51f">image_height_</a></td></tr>
<tr class="memdesc:a2248e2c024ed3854be881405b2f6d51f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Height of image <br /></td></tr>
<tr class="separator:a2248e2c024ed3854be881405b2f6d51f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6306881b02a184daee20eae63b52ebc6"><td class="memItemLeft" align="right" valign="top"><a id="a6306881b02a184daee20eae63b52ebc6"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a6306881b02a184daee20eae63b52ebc6">image_size_</a></td></tr>
<tr class="memdesc:a6306881b02a184daee20eae63b52ebc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total size of image <br /></td></tr>
<tr class="separator:a6306881b02a184daee20eae63b52ebc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7ddf2582ea6dfb424410a5a4f56bf14"><td class="memItemLeft" align="right" valign="top"><a id="ab7ddf2582ea6dfb424410a5a4f56bf14"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#ab7ddf2582ea6dfb424410a5a4f56bf14">sync_packet_size_</a></td></tr>
<tr class="memdesc:ab7ddf2582ea6dfb424410a5a4f56bf14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Length of a sync packet <br /></td></tr>
<tr class="separator:ab7ddf2582ea6dfb424410a5a4f56bf14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2aa688c327ac5f789ba9e75e5b58e1ae"><td class="memItemLeft" align="right" valign="top"><a id="a2aa688c327ac5f789ba9e75e5b58e1ae"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>dist_max_2d_</b></td></tr>
<tr class="separator:a2aa688c327ac5f789ba9e75e5b58e1ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f2efcf9ba4d7dd91504e0323c4aabbd"><td class="memItemLeft" align="right" valign="top"><a id="a1f2efcf9ba4d7dd91504e0323c4aabbd"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a1f2efcf9ba4d7dd91504e0323c4aabbd">fov_</a></td></tr>
<tr class="memdesc:a1f2efcf9ba4d7dd91504e0323c4aabbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">diagonal Field of View <br /></td></tr>
<tr class="separator:a1f2efcf9ba4d7dd91504e0323c4aabbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7920c624792743ca16938821c2ec3761"><td class="memItemLeft" align="right" valign="top"><a id="a7920c624792743ca16938821c2ec3761"></a>
libusb_context *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a7920c624792743ca16938821c2ec3761">context_</a></td></tr>
<tr class="memdesc:a7920c624792743ca16938821c2ec3761"><td class="mdescLeft">&#160;</td><td class="mdescRight">The libusb context <br /></td></tr>
<tr class="separator:a7920c624792743ca16938821c2ec3761"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a718d7ed8376e8c1fcd3f1358d899612a"><td class="memItemLeft" align="right" valign="top"><a id="a718d7ed8376e8c1fcd3f1358d899612a"></a>
struct libusb_device_handle *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a718d7ed8376e8c1fcd3f1358d899612a">device_handle_</a></td></tr>
<tr class="memdesc:a718d7ed8376e8c1fcd3f1358d899612a"><td class="mdescLeft">&#160;</td><td class="mdescRight">the actual device_handle for the camera <br /></td></tr>
<tr class="separator:a718d7ed8376e8c1fcd3f1358d899612a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c0882b00ab9383bd71002f960ff4f62"><td class="memItemLeft" align="right" valign="top"><a id="a2c0882b00ab9383bd71002f960ff4f62"></a>
unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a2c0882b00ab9383bd71002f960ff4f62">raw_buffer_</a></td></tr>
<tr class="memdesc:a2c0882b00ab9383bd71002f960ff4f62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Temporary USB read buffer, since we read two RGB16 images at a time size is the double of two images plus a sync packet. <br /></td></tr>
<tr class="separator:a2c0882b00ab9383bd71002f960ff4f62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acde89481de7363381141af69925b3f16"><td class="memItemLeft" align="right" valign="top"><a id="acde89481de7363381141af69925b3f16"></a>
boost::circular_buffer&lt; unsigned char &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#acde89481de7363381141af69925b3f16">g_buffer_</a></td></tr>
<tr class="memdesc:acde89481de7363381141af69925b3f16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Global circular buffer <br /></td></tr>
<tr class="separator:acde89481de7363381141af69925b3f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e36cd03e5a5dd56f953e36b3cee4009"><td class="memItemLeft" align="right" valign="top"><a id="a9e36cd03e5a5dd56f953e36b3cee4009"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#a9e36cd03e5a5dd56f953e36b3cee4009">bulk_ep_</a></td></tr>
<tr class="memdesc:a9e36cd03e5a5dd56f953e36b3cee4009"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bulk endpoint address value <br /></td></tr>
<tr class="separator:a9e36cd03e5a5dd56f953e36b3cee4009"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabddf84932d11ad239273c7b9ba504e9"><td class="memItemLeft" align="right" valign="top"><a id="aabddf84932d11ad239273c7b9ba504e9"></a>
unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><b>image_</b></td></tr>
<tr class="separator:aabddf84932d11ad239273c7b9ba504e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7cb3f8310a5f9b7ff9c6cebba343fa1"><td class="memItemLeft" align="right" valign="top"><a id="ab7cb3f8310a5f9b7ff9c6cebba343fa1"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_dinast_grabber.html#ab7cb3f8310a5f9b7ff9c6cebba343fa1">second_image_</a></td></tr>
<tr class="memdesc:ab7cb3f8310a5f9b7ff9c6cebba343fa1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Since there is no header after the first image, we need to save the state <br /></td></tr>
<tr class="separator:ab7cb3f8310a5f9b7ff9c6cebba343fa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d324336e85d0e177e9fb4d891cccafd"><td class="memItemLeft" align="right" valign="top"><a id="a5d324336e85d0e177e9fb4d891cccafd"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>running_</b></td></tr>
<tr class="separator:a5d324336e85d0e177e9fb4d891cccafd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc6784d0595ec3eb7d09a9d4fdcc7f48"><td class="memItemLeft" align="right" valign="top"><a id="acc6784d0595ec3eb7d09a9d4fdcc7f48"></a>
boost::thread&#160;</td><td class="memItemRight" valign="bottom"><b>capture_thread_</b></td></tr>
<tr class="separator:acc6784d0595ec3eb7d09a9d4fdcc7f48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d4ffa8b653996cb3f79a4995ba16a46"><td class="memItemLeft" align="right" valign="top"><a id="a8d4ffa8b653996cb3f79a4995ba16a46"></a>
boost::mutex&#160;</td><td class="memItemRight" valign="bottom"><b>capture_mutex_</b></td></tr>
<tr class="separator:a8d4ffa8b653996cb3f79a4995ba16a46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaa89893eb34af5b05dfab8663329c25"><td class="memItemLeft" align="right" valign="top"><a id="adaa89893eb34af5b05dfab8663329c25"></a>
boost::signals2::signal&lt; sig_cb_dinast_point_cloud &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>point_cloud_signal_</b></td></tr>
<tr class="separator:adaa89893eb34af5b05dfab8663329c25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_grabber"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_grabber')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_grabber.html">pcl::Grabber</a></td></tr>
<tr class="memitem:a0e74a0908693c0c948452476d0102dac inherit pro_attribs_classpcl_1_1_grabber"><td class="memItemLeft" align="right" valign="top"><a id="a0e74a0908693c0c948452476d0102dac"></a>
std::map&lt; std::string, boost::signals2::signal_base * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>signals_</b></td></tr>
<tr class="separator:a0e74a0908693c0c948452476d0102dac inherit pro_attribs_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63415b3517806c488fa840c54cacb5ad inherit pro_attribs_classpcl_1_1_grabber"><td class="memItemLeft" align="right" valign="top"><a id="a63415b3517806c488fa840c54cacb5ad"></a>
std::map&lt; std::string, std::vector&lt; boost::signals2::connection &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>connections_</b></td></tr>
<tr class="separator:a63415b3517806c488fa840c54cacb5ad inherit pro_attribs_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d8b3dcbecbe76b1f58978ed1b3a222f inherit pro_attribs_classpcl_1_1_grabber"><td class="memItemLeft" align="right" valign="top"><a id="a9d8b3dcbecbe76b1f58978ed1b3a222f"></a>
std::map&lt; std::string, std::vector&lt; boost::signals2::shared_connection_block &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>shared_connections_</b></td></tr>
<tr class="separator:a9d8b3dcbecbe76b1f58978ed1b3a222f inherit pro_attribs_classpcl_1_1_grabber"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
Private 类型</h2></td></tr>
<tr class="memitem:a70ee8d66f0e1a2b14a50952627f01b23"><td class="memItemLeft" align="right" valign="top"><a id="a70ee8d66f0e1a2b14a50952627f01b23"></a>
typedef void()&#160;</td><td class="memItemRight" valign="bottom"><b>sig_cb_dinast_point_cloud</b>(const boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_i.html">pcl::PointXYZI</a> &gt; &gt; &amp;)</td></tr>
<tr class="separator:a70ee8d66f0e1a2b14a50952627f01b23"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p><a class="el" href="classpcl_1_1_grabber.html" title="Grabber interface for PCL 1.x device drivers">Grabber</a> for DINAST devices (i.e., IPA-1002, IPA-1110, IPA-2001) </p>
<dl class="section author"><dt>作者</dt><dd>Marco A. Gutierrez <a href="#" onclick="location.href='mai'+'lto:'+'mar'+'co'+'g@u'+'ne'+'x.e'+'s'; return false;">marco<span style="display: none;">.nosp@m.</span>g@un<span style="display: none;">.nosp@m.</span>ex.es</a> </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="a0f1ea76f5beefbc32ce4f2dc050e7e43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f1ea76f5beefbc32ce4f2dc050e7e43">&#9670;&nbsp;</a></span>DinastGrabber()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pcl::DinastGrabber::DinastGrabber </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>device_position</em> = <code>1</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor that sets up the grabber constants. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">device_position</td><td>Number corresponding the device to grab </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a50dae74f09a229057e02d6af552fbe02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50dae74f09a229057e02d6af552fbe02">&#9670;&nbsp;</a></span>checkHeader()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int pcl::DinastGrabber::checkHeader </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if we have a header in the global buffer, and return the position of the next valid image. </p>
<dl class="section note"><dt>注解</dt><dd>If the image in the buffer is partial, return -1, as we have to wait until we add more data to it. </dd></dl>
<dl class="section return"><dt>返回</dt><dd>the position of the next valid image (i.e., right after a valid header) or -1 in case the buffer either doesn't have an image or has a partial image </dd></dl>

</div>
</div>
<a id="a2bea6bf1386f91023717e6b781483148"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2bea6bf1386f91023717e6b781483148">&#9670;&nbsp;</a></span>getName()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string pcl::DinastGrabber::getName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the name of the concrete subclass, <a class="el" href="classpcl_1_1_dinast_grabber.html" title="Grabber for DINAST devices (i.e., IPA-1002, IPA-1110, IPA-2001)">DinastGrabber</a>. </p>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="classpcl_1_1_dinast_grabber.html" title="Grabber for DINAST devices (i.e., IPA-1002, IPA-1110, IPA-2001)">DinastGrabber</a>. </dd></dl>

<p>实现了 <a class="el" href="classpcl_1_1_grabber.html#af5765700b48bea8865af2f90e46ea3e6">pcl::Grabber</a>.</p>
<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;      { <span class="keywordflow">return</span> (std::string (<span class="stringliteral">&quot;DinastGrabber&quot;</span>)); }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a28a7daa98254a86996bef98d19291650"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28a7daa98254a86996bef98d19291650">&#9670;&nbsp;</a></span>getXYZIPointCloud()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt;<a class="el" href="structpcl_1_1_point_x_y_z_i.html">pcl::PointXYZI</a>&gt;::Ptr pcl::DinastGrabber::getXYZIPointCloud </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Obtains XYZI Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> from the image of the camera </p>
<dl class="section return"><dt>返回</dt><dd>the point cloud from the image data </dd></dl>

</div>
</div>
<a id="a24d3d6fd8a3f3d92fce222578b4d1da9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24d3d6fd8a3f3d92fce222578b4d1da9">&#9670;&nbsp;</a></span>isRunning()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool pcl::DinastGrabber::isRunning </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the grabber is running </p>
<dl class="section return"><dt>返回</dt><dd>true if grabber is running / streaming. False otherwise. </dd></dl>

<p>实现了 <a class="el" href="classpcl_1_1_grabber.html#ae3a9df18b055d26ba339dc9fac408a7f">pcl::Grabber</a>.</p>

</div>
</div>
<a id="aa667c611eab72937cecc40c826060587"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa667c611eab72937cecc40c826060587">&#9670;&nbsp;</a></span>setupDevice()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::DinastGrabber::setupDevice </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>device_position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>id_vendor</em> = <code>0x18d1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>id_product</em> = <code>0x1402</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Setup a Dinast 3D camera device </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">device_position</td><td>Number corresponding the device to grab </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id_vendor</td><td>The ID of the camera vendor (should be 0x18d1) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id_product</td><td>The ID of the product (should be 0x1402) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3cb4273312fd2a265269fce6515b08bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3cb4273312fd2a265269fce6515b08bd">&#9670;&nbsp;</a></span>USBRxControlData()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::DinastGrabber::USBRxControlData </td>
          <td>(</td>
          <td class="paramtype">const unsigned char&#160;</td>
          <td class="paramname"><em>req_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Send a RX data packet request </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">req_code</td><td>the request to send (the request field for the setup packet) </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">buffer</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>the length field for the setup packet. The data buffer should be at least this size. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="acc5af0ad29551a4c541a79c82d609080"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc5af0ad29551a4c541a79c82d609080">&#9670;&nbsp;</a></span>USBTxControlData()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::DinastGrabber::USBTxControlData </td>
          <td>(</td>
          <td class="paramtype">const unsigned char&#160;</td>
          <td class="paramname"><em>req_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Send a TX data packet request </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">req_code</td><td>the request to send (the request field for the setup packet) </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">buffer</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>the length field for the setup packet. The data buffer should be at least this size. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>io/include/pcl/io/<a class="el" href="dinast__grabber_8h_source.html">dinast_grabber.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_dinast_grabber.html">DinastGrabber</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
